﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace MLopez.BizVal.WebServices
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de interfaz "IService1" en el código y en el archivo de configuración a la vez.
    [ServiceContract]
    public interface IAgregadorWS
    {
        [OperationContract]
        ResultadoWS AjustarLAMA(ExpertizajeWS expertizaje);

        [OperationContract]
        int AjustarLAMA2();

        // TODO: agregue aquí sus operaciones de servicio
    }


    // Utilice un contrato de datos, como se ilustra en el ejemplo siguiente, para agregar tipos compuestos a las operaciones de servicio.
    [DataContract]
    public class ResultadoWS
    {        
        [DataMember]
        public decimal ExtremoInferior { get; set; }
        [DataMember]
        public decimal ExtremoSuperior { get; set; }
        [DataMember]
        public int CodigoRetorno { get; set; }
        [DataMember]
        public string MensajeRetorno { get; set; }
    }

    [DataContract]
    public class OpinionWS
    {
        [DataMember]
        public int NivelJerarquia { get; set; }
        [DataMember]
        public int IndiceEtiqueta { get; set; } 
    }

    [DataContract]
    public class ExpertizajeWS
    {
        [DataMember]
        public decimal ExtremoInferior { get; set; }

        [DataMember]
        public decimal ExtremoSuperior { get; set; }
    
        [DataMember]
        public List<OpinionWS> Expertizaje { get; set; }

        [DataMember]
        public int NivelesJerarquia { get; set; }

        [DataMember]    
        public int GranularidadMinima { get; set; }
    }
}
